When a user wishes to upload photos to a server via a Yahoo! Photos web site, it is advantageous to display for the user, as a feedback before the upload, an estimate of the amount of time it will take to complete the upload. In order to estimate the upload time for files containing data of the photos before the upload, there are two things needed: 1) total size of the files, and 2) the transfer rate of data.
There are many factors that can influence the time it takes to upload photo image files. These include: time of day, day of week, Internet traffic load, server load, type of Internet connection, number and size of files being uploaded, and the like. Certain times of the day are busier, and certain days of the week are busier. Heavy network traffic load, e.g. Internet or LAN traffic load, can increase upload times as it take longer for data to be serviced, for example, by servers. Likewise, heavy server load increases the delay in responding to upload requests. Also, the type of Internet connection greatly affects the bandwidth of the upload. Besides the transfer rate, the number and size of files to be uploaded affects the upload time. A large number of small files (under 80 kb) causes perceived delays in responses from the server, and they cause the underlying internet processing to build up excessively. For each file to upload there is time needed for building up the packets of data, sending the data, and then getting conformation of packets received (success/failure), and each file can have multiple packets to send. Thus, even though a user might have a connection with download speed of 256 kb per sec, the upload speed is greatly reduced (sometimes well under 100 kb per sec).
Current file upload pages have a block of information indicating that it will take certain number of seconds (or minutes), when using a modem, a Digital Subscriber Line (DSL), or other type of connection for uploading a file of a particular size. One way to determine this information is using a process that is stored in the client's ‘media’ cookie to determine bandwidth. However, not only does this process require user intervention for setting the media cookie, the information obtained detects the ‘best case’ bandwidth. Namely, although providing a preload time estimate, this approach is a static evaluation based on best case transfer rates rather than a dynamic evaluation based on actual transfer rates. Of course, as files are being uploaded, a special code can determine the actual transfer rate and provide an estimate of remaining time. But, again, this is not a preload estimate. Likewise, hardware tests can be conducted on the user's computer but the results of such tests will not reliably indicate the upload bandwidth, just a ‘best’ case scenario. Hence there is a need to provide a more realistic indication of the estimated time to complete an upload.